// 选择模块
// 1.全选思路：里面3个小的复选框按钮(j-checkbox)选中状态(checked)跟着全选按钮(checkall)走
// 2.因为check是复选框的固有属性，此时需要利用prop()方法获取和设置该属性
// 3.把全选按钮状态赋值给3个复选框就可以了
// 4.每次点击小的复选按钮，就来判断：
// 5.如果小的复选框被选中的个数等于3，就把全选按钮选上，否则全选按钮不选 通过:checked选择器

// 增加商品模块
// 1.核心思路：首先声明一个变量，当点击+号(increment),就让这个变量++,然后变量赋值给文本框
// 2.注意：只能增加本商品的数量，就是当前+好的兄弟文本（itxt）的值
// 3.修改表单的值是val()方法
// 4.注意：这个变量初始值应该是这个文本框的值，在这个值得基础上++。要获取表单的值
// 5.减号(decrement)思路同理，但是如果文本框值是1，就不能再减了

// 修改商品小计
// 1.核心思路：每次点击+号或者-号，根据文本框的值*当前商品的价格=商品小计
// 2.注意：只能增加本商品的小计，就是当前商品的小计模块(p-sum)
// 3.修改普通元素的内容是text()
// 4.注意：当前商品的价格，要把¥符号去掉再相乘，截取字符串substr(1)
// 5. .parents(),返回指定的祖先元素
// 6.最后计算的结果㘝想要保留2位小数，通过toFixed(2)方法
// 7.用户直接修改表单里的值，同样要计算小计，改变表单 change事件
// 用最新的表单内的值 乘以 单价即可，但是还是当前商品小计

// 计算总计和总额
// 1.核心思路：把所有文本框里面的值相加就是总计数量。总额同理
// 2.文本框里面的值不同，如果想要相加需要用到each遍历。声明一个变量，相加即可
// 3.点击+号-号，会改变总计和总额的，如果用户修改了文本框里面的值同样会改变总计和总额
// 4.因此可以封装一个函数求总计总额，以上2个操作调用这个函数即可
// 5.注意1：总计是文本框里面值相加var() 总额是普通元素的内容用到text()
// 6.要注意普通元素里面的内容要去掉¥并且转换为数字型才能相加

// 删除商品
// 1.核心思路：把商品remove()删除元素即可
// 2.有三个地方需要删除：商品后面的删除按钮；删除选中的商品；清理购物车
// 3.商品后面的删除按钮：一定是删除当前的商品，所以从$(this)出发
// 4.删除选中的商品：先判断小的复选框按钮是否选中状态，如果是选中，则删除对应的商品

// 选中商品添加背景
// 1.核心思路：选中商品添加背景，不选中移除背景即可
// 2.全选按钮点击：如果全选是选中的，则所有商品添加背景，否则移除背景
// 3.小的复选框点击：如果是选中状态，则当前商品添加背景，否则移除背景
// 4.这个背景，可以通过类名修改，添加类或删除类
$(function () {
    // 1.全选 全不选功能模块
    // 就是把全选按钮(checkall)的状态赋值给 三个小的按钮(j-checkbox)
    // 事件可以用change()
    $(".checkall").change(function () {
        $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));
        if ($(this).prop("checked")) {
            // 让所有的商品添加check-cart-item类名
            $(".cart-item").addClass("check-cart-item");
        } else {
            // check-cart-item 移除
            $(".cart-item").removeClass("check-cart-item");
        };
    });
    // 2.如果小的复选框被选中的个数等于3，就把全选按钮选上，否则全选按钮不选
    $(".j-checkbox").change(function () {
        if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {  // if (被选中的小的复选框的个数 === 小按钮的个数) {
            $(".checkall").prop("checked", true);                           //     就要选中全选按钮
        } else {                                                            // } eles {
            $(".checkall").prop("checked", false);                          //     不要选中全选按钮
        };
        if ($(this).prop("checked")) {
            // 让当前的商品添加check-cart-item类名
            $(this).parents(".cart-item").addClass("check-cart-item");
        } else {
            // check-cart-item 移除
            $(this).parents(".cart-item").removeClass("check-cart-item");
        };                                                                  // }
    });
    // 3.首先声明一个变量，当点击+号(increment),就让这个变量++,然后变量赋值给文本框
    $(".increment").click(function () {
        // 得到当前兄弟文本框的值
        var n = $(this).siblings(".itxt").val();
        n++;
        $(this).siblings(".itxt").val(n);
        // 4.计算小计模块 根据文本框的值*当前商品的价格=商品小计
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        p = p.substr(1);
        // 小计模块
        // toFixed(2) 保留两位小数
        var price = (p * n).toFixed(2);
        $(this).parents(".p-num").siblings(".p-sum").html("¥ " + price);
        getSum();
    });
    $(".decrement").click(function () {
        // 得到当前兄弟文本框的值
        var n = $(this).siblings(".itxt").val();
        if (n == 0) {
            // 为0时删除掉此物品
            $(this).parents(".p-num").parent(".cart-item").remove();
            return false;
        }
        n--;
        $(this).siblings(".itxt").val(n);
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        p = p.substr(1);
        $(this).parents(".p-num").siblings(".p-sum").html("¥ " + (p * n).toFixed(2));
        getSum();
    });
    // 5.用户修改文本框的值 计算 小计模块
    $(".itxt").change(function () {
        // 先的到文本框里面的值 乘以 当前商品的单价
        var n = $(this).val();
        // 当前商品的单价
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        p = p.substr(1);
        $(this).parents(".p-num").siblings(".p-sum").html("¥ " + (p * n).toFixed(2));
        getSum();
    });
    // 6.计算总计总额模块
    getSum();
    function getSum() {
        var count = 0; // 计算总件数
        var money = 0; // 计算总价钱
        $(".itxt").each(function (i, ele) {
            count += parseInt($(ele).val());
        });
        $(".amount-sum em").text(count);
        $(".p-sum").each(function (i, ele) {
            money += parseFloat($(ele).text().substr(1));
        });
        $(".price-sum em").text("¥ " + money.toFixed(2));
    };
    // 7.删除商品模块
    // （1）商品后面的删除按钮
    $(".p-action a").click(function () {
        $(this).parents(".cart-item").remove();
        getSum();
    });
    // （2）删除选中的商品
    $(".remove-batch").click(function () {
        // 删除的是小的复选框选中的商品
        $(".j-checkbox:checked").parents(".cart-item").remove();
        getSum();
    });
    // （3）清空购物车 删除全部商品
    $(".clear-all").click(function () {
        $(".cart-item").remove();
        getSum();
    });
})